/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.opensource.jdom.taggen.html.tag;

import org.opensource.jdom.taggen.html.CommonAttributes;

/**
 * Table header cell. Defines a column or row header that is not table data
 * itself. If a cell acts as both header and data, td should be used instead.
 * th must be used inside a tr element.
 *
 * <h2>Example</h2> <pre><code class="html">
 *&lt;table&gt;
 *	&lt;tr&gt;
 *		<strong>&lt;th&gt;</strong>Question<strong>&lt;/th&gt;</strong>
 *		<strong>&lt;th&gt;</strong>Answer<strong>&lt;/th&gt;</strong>
 *		<strong>&lt;th&gt;</strong>Correct?<strong>&lt;/th&gt;</strong>
 *	&lt;/tr&gt;
 *	&lt;tr&gt;
 *		&lt;td&gt;What is the capital of Burundi?&lt;/td&gt;
 *		&lt;td&gt;Bujumburra&lt;/td&gt;
 *		&lt;td&gt;Yes&lt;/td&gt;
 *	&lt;/tr&gt;
 *	&lt;tr&gt;
 *		&lt;td&gt;What is the capital of France?&lt;/td&gt;
 *		&lt;td&gt;F&lt;/td&gt;
 *		&lt;td&gt;Erm... sort of&lt;/td&gt;
 *	&lt;/tr&gt;
 *&lt;/table&gt;
 *</code></pre>
 *
 * @see Tr
 * @see Td
 * @see Table
 * @author sergio.valdez
 */
public class Th extends CommonAttributes{

    /**
     * can be used to specify across how many columns the cell should spread.
     * The default value is 1.
     */
    private String colspan;
    /**
     * can be used to specify across how many rows the cell should spread.
     * The default value is 1.
     */
    private String rowspan;
    /**
     * can be used to specify an abbreviated version of the content of the cell.
     */
    private String abbr;
    /**
     * can be used to specify a category that forms a conceptual axis in
     * n-dimensional space for hierarchical structuring.
     * The value can be a single name or a comma-separated list of names.
     */
    private String axis;
    /**
     * can be used to explicitly specify which header cells are associated to
     * the cell. The value is a single or comma-separated list of table cell id
     * values.
     */
    private String headers;
    /**
     * can be used to explicitly specify that the cell contains header
     * information for the rest of the row (value row), column (value col),
     * row group (value rowgroup) or column group (value colgroup) that contains
     * it.
     */
    private String scope;
    /**
     * can be used to horizontally align the content of the cell.
     * The value can be left, center, right, justify or char.
     */
    private String align;
    /**
     * can be used to vertically align the content of the cell.
     * The value can be top, middle, bottom or baseline.
     */
    private String valign;
    /**
     * can be used to specify a character with which cells will align,
     * such as a decimal point. It is not supported by any major browser.
     */
    private String cssChar;
    /**
     * can be used to specify the number of pixels the alignment should be
     * offset from the char character. It is not supported by any major browser.
     */
    private String charoff;

    /**
     * can be used to specify across how many columns the cell should spread.
     * The default value is 1.
     * @return the colspan
     */
    public String getColspan() {
        return colspan;
    }

    /**
     * can be used to specify across how many columns the cell should spread.
     * The default value is 1.
     * @param colspan the colspan to set
     */
    public void setColspan(String colspan) {
        this.colspan = colspan;
    }

    /**
     * can be used to specify across how many rows the cell should spread.
     * The default value is 1.
     * @return the rowspan
     */
    public String getRowspan() {
        return rowspan;
    }

    /**
     * can be used to specify across how many rows the cell should spread.
     * The default value is 1.
     * @param rowspan the rowspan to set
     */
    public void setRowspan(String rowspan) {
        this.rowspan = rowspan;
    }

    /**
     * can be used to specify an abbreviated version of the content of the cell.
     * @return the abbr
     */
    public String getAbbr() {
        return abbr;
    }

    /**
     * can be used to specify an abbreviated version of the content of the cell.
     * @param abbr the abbr to set
     */
    public void setAbbr(String abbr) {
        this.abbr = abbr;
    }

    /**
     * can be used to specify a category that forms a conceptual axis in
     * n-dimensional space for hierarchical structuring.
     * The value can be a single name or a comma-separated list of names.
     * @return the axis
     */
    public String getAxis() {
        return axis;
    }

    /**
     * can be used to specify a category that forms a conceptual axis in
     * n-dimensional space for hierarchical structuring.
     * The value can be a single name or a comma-separated list of names.
     * @param axis the axis to set
     */
    public void setAxis(String axis) {
        this.axis = axis;
    }

    /**
     * can be used to explicitly specify which header cells are associated to
     * the cell. The value is a single or comma-separated list of table cell id
     * values.
     * @return the headers
     */
    public String getHeaders() {
        return headers;
    }

    /**
     * can be used to explicitly specify which header cells are associated to
     * the cell. The value is a single or comma-separated list of table cell id
     * values.
     * @param headers the headers to set
     */
    public void setHeaders(String headers) {
        this.headers = headers;
    }

    /**
     * can be used to explicitly specify that the cell contains header
     * information for the rest of the row (value row), column (value col),
     * row group (value rowgroup) or column group (value colgroup) that contains
     * it.
     * @return the scope
     */
    public String getScope() {
        return scope;
    }

    /**
     * can be used to explicitly specify that the cell contains header
     * information for the rest of the row (value row), column (value col),
     * row group (value rowgroup) or column group (value colgroup) that contains
     * it.
     * @param scope the scope to set
     */
    public void setScope(String scope) {
        this.scope = scope;
    }

    /**
     * can be used to horizontally align the content of the cell.
     * The value can be left, center, right, justify or char.
     * @return the align
     */
    public String getAlign() {
        return align;
    }

    /**
     * can be used to horizontally align the content of the cell.
     * The value can be left, center, right, justify or char.
     * @param align the align to set
     */
    public void setAlign(String align) {
        this.align = align;
    }

    /**
     * can be used to vertically align the content of the cell.
     * The value can be top, middle, bottom or baseline.
     * @return the valign
     */
    public String getValign() {
        return valign;
    }

    /**
     * can be used to vertically align the content of the cell.
     * The value can be top, middle, bottom or baseline.
     * @param valign the valign to set
     */
    public void setValign(String valign) {
        this.valign = valign;
    }

    /**
     * can be used to specify a character with which cells will align,
     * such as a decimal point. It is not supported by any major browser.
     * @return the cssChar
     */
    public String getCssChar() {
        return cssChar;
    }

    /**
     * can be used to specify a character with which cells will align,
     * such as a decimal point. It is not supported by any major browser.
     * @param cssChar the cssChar to set
     */
    public void setCssChar(String cssChar) {
        this.cssChar = cssChar;
    }

    /**
     * can be used to specify the number of pixels the alignment should be
     * offset from the char character. It is not supported by any major browser.
     * @return the charoff
     */
    public String getCharoff() {
        return charoff;
    }

    /**
     * can be used to specify the number of pixels the alignment should be
     * offset from the char character. It is not supported by any major browser.
     * @param charoff the charoff to set
     */
    public void setCharoff(String charoff) {
        this.charoff = charoff;
    }
}
